#include "BaseField.h"

BaseField::BaseField()
    : _name(QString::null), _description(QString::null), _lenght(0), _typeName("BaseName")
{

}

BaseField::BaseField(const QString &name, const QString &description, int lenght)
    : _name(name), _description(description), _lenght(lenght), _typeName("BaseField")
{
}

BaseField::BaseField(const QString &name, int lenght)
    : _name(name), _description(QString::null), _lenght(lenght), _typeName("BaseName")
{
}

/*! Вовзаращет название поля */
QString BaseField::getName() const
{
    return _name;
}

/*! Устанавливает название поля */
void BaseField::setName(const QString &name)
{
    _name = name;
}

/*! Вовращает описание поля */
QString BaseField::getDescription() const
{
    return _description;
}

/*! Устанавливает описание поля */
void BaseField::setDescription(const QString &desc)
{
    _description = desc;
}

/*! Воазращет длину поля */
int BaseField::getLenght()
{
    return _lenght;
}

/*! Устанавливает длину поля */
void BaseField::setLenght(int lenght)
{
    _lenght = lenght;
}

QString BaseField::getTypeName() const
{
    return _typeName;
}

QString BaseField::toString() const
{
    return QString("{" + _typeName + ": " + _name + "(" + QString::number(_lenght) + ")" + "}");
}

bool BaseField::validate(const QVariant &value) const
{
    return false;
}

bool BaseField::isNull()
{
    if(_name == QString::null &&
            _description == QString::null &&
            _lenght == 0)
        return true;

    return false;

}
